# -*- coding: utf-8 -*-
# @File    : date_utils.py
# @Author  : libo
# @Email   : libo@jiachengnet.com
# @Date    : 2025/9/15 16:48
# @Desc    : 日期和时间工具类

import datetime
import time

from zoneinfo import ZoneInfo


def get_current_time(timezone='Asia/Shanghai'):
    """
    获取指定时区的当前时间
    
    Args:
        timezone: 时区，默认为'Asia/Shanghai'（中国标准时间）
        
    Returns:
        datetime: 当前时区的datetime对象
    """
    tz = ZoneInfo(timezone)
    return datetime.datetime.now(tz)


def get_current_timestamp():
    """
    获取当前时间戳（秒）
    
    Returns:
        float: 当前时间戳（秒）
    """
    return time.time()


def get_current_time_str(format_str='%Y-%m-%d %H:%M:%S', timezone='Asia/Shanghai'):
    """
    获取指定时区的当前时间字符串
    
    Args:
        format_str: 时间格式字符串，默认为'%Y-%m-%d %H:%M:%S'
        timezone: 时区，默认为'Asia/Shanghai'（中国标准时间）
        
    Returns:
        str: 格式化后的时间字符串
    """
    current_time = get_current_time(timezone)
    return current_time.strftime(format_str)


def get_date_str(timezone='Asia/Shanghai'):
    """
    获取指定时区的当前日期字符串（年-月-日）
    
    Args:
        timezone: 时区，默认为'Asia/Shanghai'（中国标准时间）
        
    Returns:
        str: 当前日期字符串，格式为'%Y-%m-%d'
    """
    return get_current_time_str('%Y-%m-%d', timezone)


def get_time_str(timezone='Asia/Shanghai'):
    """
    获取指定时区的当前时间字符串（时:分:秒）
    
    Args:
        timezone: 时区，默认为'Asia/Shanghai'（中国标准时间）
        
    Returns:
        str: 当前时间字符串，格式为'%H:%M:%S'
    """
    return get_current_time_str('%H:%M:%S', timezone)



